package pl.lodz.p.kipme.dao;

import java.util.List;

import pl.lodz.p.kipme.bo.Category;
import pl.lodz.p.kipme.bo.Product;
import pl.lodz.p.kipme.bo.ProductInfo;
import pl.lodz.p.kipme.bo.ProductType;
import pl.lodz.p.kipme.exception.BusinessException;

public interface ProductDAO {
	public void addProduct(Product product) throws BusinessException;

	public List<Category> getCategories();

	public Product getProductByCode(String productCode);

	public List<ProductInfo> getProductInfoList();

	public List<Product> getProductsByCategory(String category);

	public List<Product> getProductsByType(String type);

	public List<ProductType> getProductTypes();

	public void removeProduct(String productCode);

	public void updateProduct(Product product) throws BusinessException;

	int countProduct(String code);

	public void updateNumberOfProduct(String productCode, int newAmount);
}
